home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 37 / CD Expert nº 37.iso / LastCall / lastcall.exe / stuff / lastcall.dxr / 00226_Scrolling credits.ls < prev    next >
Encoding:
Text File  |  2000-03-27  |  2.0 KB  |  90 lines

  1. property pSpr, pMember, pTimer, pLimit, pReverse, member1, member2, pMaxScroll
  2. global gDemoVersion
  3.  
  4. on beginSprite me
  5.   pSpr = sprite(me.spriteNum)
  6.   if gDemoVersion then
  7.     member1 = member("credits for demo")
  8.   else
  9.     member1 = member("credits")
  10.   end if
  11.   pSpr.member = member1
  12.   pSpr.member.scrollTop = 0
  13.   pLimit = seconds(3)
  14.   pTimer = newTimer(me)
  15.   member2 = member("fake credits")
  16.   pReverse = 1
  17.   pMaxScroll = maxScrolling(me)
  18. end
  19.  
  20. on maxScrolling me
  21.   return charPosToLoc(pSpr.member, pSpr.member.text.length).locV - pSpr.rect.height
  22. end
  23.  
  24. on newTimer me
  25.   return nowTicks() + pLimit
  26. end
  27.  
  28. on exitFrame me
  29.   if pSpr.member.scrollTop >= pMaxScroll then
  30.     if pReverse <> -1 then
  31.       pTimer = newTimer(me)
  32.       pReverse = -1
  33.     end if
  34.   else
  35.     if pSpr.member.scrollTop < 10 then
  36.       if pReverse <> 1 then
  37.         pTimer = newTimer(me)
  38.         pReverse = 1
  39.       end if
  40.     end if
  41.   end if
  42.   elapsed = ticksSince(pTimer)
  43.   cut1 = 60
  44.   rate1 = 5.0
  45.   offset1 = cut1 / rate1
  46.   cut2 = 120
  47.   rate2 = 3.0
  48.   offset2 = ((cut2 - cut1) / rate2) + offset1
  49.   if elapsed > 0 then
  50.     if elapsed < cut1 then
  51.       scrollMe = elapsed / rate1
  52.     else
  53.       if elapsed < cut2 then
  54.         scrollMe = offset1 + ((elapsed - cut1) / rate2)
  55.       else
  56.         scrollMe = offset2 + ((elapsed - cut2) / 1.5)
  57.       end if
  58.     end if
  59.     if pReverse = 1 then
  60.       pSpr.member.scrollTop = scrollMe
  61.     else
  62.       pSpr.member.scrollTop = pMaxScroll - scrollMe
  63.     end if
  64.   end if
  65. end
  66.  
  67. on mouseDown me
  68.   if the shiftDown and the optionDown then
  69.     if pSpr.member <> member2 then
  70.       member2.scrollTop = member1.scrollTop
  71.       pSpr.member = member2
  72.     end if
  73.   else
  74.     if the shiftDown then
  75.       nothing()
  76.     else
  77.       if pSpr.member <> member1 then
  78.         member1.scrollTop = member2.scrollTop
  79.         pSpr.member = member1
  80.       end if
  81.     end if
  82.   end if
  83.   pMaxScroll = maxScrolling(me)
  84.   elapsed = ticksSince(pTimer)
  85.   repeat while the mouseDown
  86.     nothing()
  87.   end repeat
  88.   pTimer = nowTicks() - elapsed
  89. end
  90.